Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(wallet): add ability to send a token #18242

Merged
merged 2 commits into from
Jan 5, 2024
Merged

feat(wallet): add ability to send a token #18242

merged 2 commits into from
Jan 5, 2024

Conversation

J-Son89
Copy link
Contributor

@J-Son89 J-Son89 commented Dec 19, 2023

fixes: #18005

This pr adds the integration with Status Go to send a transaction.

Testing Notes:
This pr is adding the happy path for sending a token.
To send a token this is the flow.

  • On test net or prod
  • go to wallet
  • go to an account, hit "send" button.
  • enter an address using the input box or the scanner (don't select your own accounts via the my-accounts tab)
  • choose an amount in crypto less than the amount in your account to allow for gas etc.
  • continue to confirmation page
  • authorize and sign the transaction
  • should then navigate to transaction progress page

This is only for the mainnet transactions (including testnet), support for other Optimism & Arbitrum will be added in addtional pr's.

  • Transaction Confirmation page is missing a few UI details, such as gas, time of transaction etc. I will create a follow up issue to implement these completely.

  • Transaction progress page is only initial state of it, there is no expected functionality there as this will be handled in a separate issue. For now the button on that page will navigate to the account-page.
    This navigation should also end up with the Transactions tab active on the send page, this is beyond the scope of this pr. The main focus is to be able to send any token

The slide button on the transaction confirmation page is not sitting right. This is a common component and I would prefer to handle this issue as I don't want to block this pr because of that. The send flows are high priority for 1.27 and this issue can be handled in isolation 👍

Design Review:
Quo Component - Tags -> Summary Tag was also revisited as it was missng some designs. It would be good to check this component is looking alright here 👍

Screen.Recording.2023-12-21.at.20.29.57.mov

@status-im-auto
Copy link
Member

status-im-auto commented Dec 20, 2023

Jenkins Builds

Click to see older builds (51)
Commit #️⃣ Finished (UTC) Duration Platform Result
d7e9b04 #2 2023-12-20 00:02:55 ~2 min tests 📄log
✔️ d7e9b04 #2 2023-12-20 00:06:39 ~6 min ios 📱ipa 📲
✔️ d7e9b04 #2 2023-12-20 00:07:08 ~6 min android 🤖apk 📲
✔️ d7e9b04 #2 2023-12-20 00:07:24 ~7 min android-e2e 🤖apk 📲
8928762 #3 2023-12-20 00:29:05 ~2 min tests 📄log
✔️ 8928762 #3 2023-12-20 00:34:19 ~7 min android-e2e 🤖apk 📲
✔️ 8928762 #3 2023-12-20 00:34:19 ~7 min android 🤖apk 📲
f612de3 #4 2023-12-21 20:35:10 ~2 min tests 📄log
✔️ f612de3 #4 2023-12-21 20:40:12 ~7 min android-e2e 🤖apk 📲
✔️ f612de3 #4 2023-12-21 20:40:19 ~7 min android 🤖apk 📲
✔️ f612de3 #4 2023-12-21 20:44:27 ~11 min ios 📱ipa 📲
✔️ 7463f42 #5 2023-12-21 20:56:35 ~4 min tests 📄log
✔️ 7463f42 #5 2023-12-21 20:57:33 ~5 min ios 📱ipa 📲
✔️ 7463f42 #5 2023-12-21 21:00:22 ~8 min android-e2e 🤖apk 📲
✔️ 7463f42 #5 2023-12-21 21:00:26 ~8 min android 🤖apk 📲
✔️ eff98a4 #6 2023-12-22 09:24:18 ~5 min tests 📄log
✔️ eff98a4 #6 2023-12-22 09:27:44 ~8 min android-e2e 🤖apk 📲
✔️ eff98a4 #6 2023-12-22 09:27:51 ~8 min android 🤖apk 📲
✔️ eff98a4 #6 2023-12-22 09:34:24 ~15 min ios 📱ipa 📲
✔️ 8e441fd #7 2023-12-26 12:30:53 ~7 min tests 📄log
✔️ 8e441fd #7 2023-12-26 12:33:02 ~9 min android-e2e 🤖apk 📲
✔️ 8e441fd #7 2023-12-26 12:33:09 ~9 min android 🤖apk 📲
✔️ 8e441fd #7 2023-12-26 12:37:03 ~13 min ios 📱ipa 📲
✔️ c363d7a #8 2023-12-27 12:18:42 ~5 min tests 📄log
✔️ c363d7a #8 2023-12-27 12:19:49 ~6 min android-e2e 🤖apk 📲
✔️ c363d7a #8 2023-12-27 12:21:20 ~8 min ios 📱ipa 📲
✔️ c363d7a #8 2023-12-27 12:21:55 ~8 min android 🤖apk 📲
✔️ cada35f #9 2023-12-28 00:13:16 ~4 min tests 📄log
✔️ cada35f #9 2023-12-28 00:14:15 ~5 min ios 📱ipa 📲
✔️ cada35f #9 2023-12-28 00:17:03 ~8 min android-e2e 🤖apk 📲
✔️ cada35f #9 2023-12-28 00:17:05 ~8 min android 🤖apk 📲
✔️ 47e582a #10 2023-12-29 12:24:36 ~4 min tests 📄log
✔️ 47e582a #10 2023-12-29 12:28:03 ~8 min android-e2e 🤖apk 📲
✔️ 47e582a #10 2023-12-29 12:28:13 ~8 min android 🤖apk 📲
✔️ 47e582a #10 2023-12-29 12:31:52 ~12 min ios 📱ipa 📲
✔️ ad80acb #11 2024-01-02 09:58:25 ~5 min tests 📄log
✔️ ad80acb #11 2024-01-02 09:59:17 ~6 min ios 📱ipa 📲
✔️ ad80acb #11 2024-01-02 10:01:53 ~8 min android-e2e 🤖apk 📲
✔️ ad80acb #11 2024-01-02 10:01:58 ~8 min android 🤖apk 📲
✔️ 81e0cfe #12 2024-01-03 19:46:50 ~5 min tests 📄log
✔️ 81e0cfe #12 2024-01-03 19:47:37 ~5 min ios 📱ipa 📲
✔️ 81e0cfe #12 2024-01-03 19:50:09 ~8 min android-e2e 🤖apk 📲
✔️ 81e0cfe #12 2024-01-03 19:50:19 ~8 min android 🤖apk 📲
d5a22c8 #13 2024-01-04 09:41:05 ~2 min tests 📄log
✔️ d5a22c8 #13 2024-01-04 09:44:46 ~6 min ios 📱ipa 📲
✔️ d5a22c8 #13 2024-01-04 09:46:09 ~7 min android-e2e 🤖apk 📲
✔️ d5a22c8 #13 2024-01-04 09:46:16 ~7 min android 🤖apk 📲
✔️ 1062580 #14 2024-01-04 11:36:36 ~5 min tests 📄log
✔️ 1062580 #14 2024-01-04 11:39:35 ~8 min android 🤖apk 📲
✔️ 1062580 #14 2024-01-04 11:39:52 ~8 min android-e2e 🤖apk 📲
✔️ 1062580 #14 2024-01-04 11:41:22 ~10 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ a1cb0a1 #15 2024-01-04 15:05:32 ~5 min tests 📄log
✔️ a1cb0a1 #15 2024-01-04 15:05:56 ~5 min ios 📱ipa 📲
✔️ a1cb0a1 #15 2024-01-04 15:07:52 ~7 min android 🤖apk 📲
✔️ a1cb0a1 #15 2024-01-04 15:09:04 ~9 min android-e2e 🤖apk 📲
023cc88 #16 2024-01-05 14:51:19 ~4 min tests 📄log
✔️ 023cc88 #16 2024-01-05 14:52:39 ~5 min ios 📱ipa 📲
✔️ 023cc88 #16 2024-01-05 14:54:00 ~7 min android 🤖apk 📲
✔️ 023cc88 #16 2024-01-05 14:54:34 ~7 min android-e2e 🤖apk 📲
✔️ 023cc88 #17 2024-01-05 14:59:03 ~4 min tests 📄log

@J-Son89
Copy link
Contributor Author

J-Son89 commented Dec 20, 2023

I can't figure out what it is, but the floating button page is not sitting right for slide button.

If I hot reload it sits perfectly though 😅

If anyone has any ideas what the fix is would be appreciated

@J-Son89 J-Son89 marked this pull request as ready for review December 20, 2023 00:25
:amount (str ethereum " ETH")
:divider? (or show-arbitrum? show-optimism?)
:theme theme}])
(when show-optimism?
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the designs only show these if they have a value. We could also look to remove network specific details out of this component and make it more generic but it's for another pr as this work is already growing too large.

[account-avatar/view account-props]
(= type :saved-account)
[wallet-user-avatar/wallet-user-avatar (assoc account-props :size :size-32)]
(= type :account)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some slight differences for designs then what was initially implemented here. I think it went unnoticed and will ask for a design review for this component.

container-style]}]
[rn/view {:style {:flex 1}}
container-style
]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will adjust formatting 🤒

(assoc account-props
:size :size-32
:neutral? true
)]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will adjust formatting 🤒

amount (:amount send-transaction-data)
route (:route send-transaction-data)
estimated-time-min (:EstimatedTime route)
max-fees "-"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

max fees to be calculated properly in a follow up 👍

(:GasFees
route))))
:Input ""
:Data "0x"}}]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is that hardcoded "0x" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will find the explanation and send it on. For now this is okay to leave as is though.

Copy link
Contributor Author

@J-Son89 J-Son89 Dec 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Data is a secondary feature, it is something which can be useful when making something other than an ETH transaction. It is the encoding of the contract call. We will eventually follow up to include this feature.
cc @alaibe in case I left out any details

token-symbol (:symbol token)
amount (:amount send-transaction-data)
route (:route send-transaction-data)
estimated-time-min (:EstimatedTime route)
Copy link
Contributor

@OmarBasem OmarBasem Dec 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can the keys in this data be converted to kebab-case (:EstimatedTime route)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah you're right, will adjust these!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Contributor

@ulisesmac ulisesmac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good @J-Son89 I just left some suggestions

(when (pos? ethereum)
[network-amount
{:network :ethereum
:amount (str ethereum " ETH")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have a place to extract these strings ("ETH", "OPT", etc) by network name (e.g. :optimism) ?

Copy link
Contributor Author

@J-Son89 J-Son89 Dec 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to revisit how this component is working - I will create a follow up issue for this. For this pr it goes outside of the scope and send already is a huge feature set. imo the quo components should have no knowledge of networks and should just render the UI.

src/quo/components/wallet/summary_info/view.cljs Outdated Show resolved Hide resolved
(js/alert "Not implemented yet")
{:db (assoc-in db [:wallet :ui :send :amount] amount)}))
(fn [{:keys [db]} [{:keys [amount stack-id]}]]
{:db (assoc-in db [:wallet :ui :send :amount] amount)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

src/status_im/contexts/wallet/send/utils.cljs Show resolved Hide resolved
src/utils/money.cljs Show resolved Hide resolved
Comment on lines 105 to 164
(rf/reg-event-fx :wallet/send-transaction
(fn [{:keys [db]} [sha3-pwd]]
(let [route (get-in db [:wallet :ui :send :route])
from-address (get-in db [:wallet :current-viewing-account-address])
to-address (get-in db [:wallet :ui :send :to-address])
from (:From route)
token (get-in db [:wallet :ui :send :token])
token-id (:symbol token)
from-asset token-id
to-asset token-id
bridge-name (:BridgeName route)
chain-id (:chainId from)
multi-transaction-command {:fromAddress from-address
:toAddress to-address
:fromAsset from-asset
:toAsset to-asset
:fromAmount (:AmountOut route)
:type 0}
transaction-bridge
[{:BridgeName bridge-name
:ChainID chain-id
:TransferTx {:From from-address
:To to-address
:Gas (money/to-hex (:GasAmount route))
:GasPrice (money/to-hex (money/->wei :gwei
(:gasPrice (:GasFees route))))
:Value (:AmountOut route)
:Nonce nil
:MaxFeePerGas (money/to-hex
(money/->wei :gwei
(:maxFeePerGasMedium (:GasFees route))))
:MaxPriorityFeePerGas (money/to-hex (money/->wei :gwei
(:maxPriorityFeePerGas
(:GasFees
route))))
:Input ""
:Data "0x"}}]
request-params [multi-transaction-command transaction-bridge sha3-pwd]]
{:json-rpc/call [{:method "wallet_createMultiTransaction"
:params request-params
:on-success (fn [result]
(rf/dispatch [:hide-bottom-sheet])
(rf/dispatch [:wallet/add-authorized-transaction result]))
:on-error (fn [error]
(log/error "failed to send transaction"
{:event :wallet/send-transaction
:error error
:params request-params}))}]})))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This event looks a little large. I think we could split it into more small pieces.

Most of the problems related to why it is verbose are related to CamelCase, so I'd suggest to transform the keys keys while being stored:

(rf/reg-event-fx
 :wallet/suggested-routes-success
 (fn [{:keys [db]} [suggested-routes timestamp]]
   (when (= (get-in db [:wallet :ui :send :suggested-routes-call-timestamp]) timestamp)
     {:db (-> db
              (assoc-in [:wallet :ui :send :suggested-routes] suggested-routes)
              ;; Transform the keys in `(first (:Best suggested-routes))` to kebab case
              (assoc-in [:wallet :ui :send :route] (first (:Best suggested-routes)))
              (assoc-in [:wallet :ui :send :loading-suggested-routes?] false))})))

That will also solve the problem @OmarBasem said about transforming the estimated time route.

Once that is done, we could refactor this event easier, just as a suggestion:

(rf/reg-event-fx
 :wallet/send-transaction
 (fn [{{wallet-db :wallet} :db} [sha3-pwd]]
   (let [{:keys [route token
                 to-address]}      (get-in wallet-db [:ui :send])
         from-address              (:current-viewing-account-address wallet-db)
         token-id                  (:symbol token)
         multi-transaction-command {:fromAddress from-address
                                    :toAddress   to-address
                                    :fromAsset   token-id
                                    :toAsset     token-id
                                    :fromAmount  (:amount-out route)
                                    :type        0}
         transaction-bridge        (get-transaction-bridge {:from-address from-address
                                                            :to-address   to-address
                                                            :route        route})
         request-params            [multi-transaction-command transaction-bridge sha3-pwd]]
     {:json-rpc/call [,,,]})))

That is getting the transaction bridge map in a separate function. I'm not sure rn, but I think getting a transaction bridge will be a common operation, so maybe that function can be reused or extended in the future. ATM, it just helps to readability, that function is:

(defn- get-transaction-bridge [{:keys [from-address to-address route]}]
  (let [{:keys [from bridge-name amount-out gas-amount gas-fees]}           route
        {:keys [gas-price max-fee-per-gas-medium max-priority-fee-per-gas]} gas-fees]
    [{:BridgeName bridge-name
      :ChainID    (:chain-id from)
      :TransferTx {:From                 from-address
                   :To                   to-address
                   :Gas                  (money/to-hex gas-amount)
                   :GasPrice             (money/to-hex (money/->wei :gwei gas-price))
                   :Value                amount-out
                   :Nonce                nil
                   :MaxFeePerGas         (money/to-hex (money/->wei :gwei max-fee-per-gas-medium))
                   :MaxPriorityFeePerGas (money/to-hex (money/->wei :gwei max-priority-fee-per-gas))
                   :Input                ""
                   :Data                 "0x"}}]))

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, I agree with everything here and about the keys neededing to be adjusted. Will do all! Thanks for the feedback @ulisesmac & @OmarBasem :)

Comment on lines +96 to +105
(let [transaction-hashes (:hashes transaction)
chain-id (key (first transaction-hashes))
tx-id (first (val (first transaction-hashes)))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we only get the first item? what is contained in the rest of them?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah this is a temporary solution, will adjust properly when we go to implement the transaction progress page.
Happy to remove it for now, I think I left it there to also open up discussion about how we store transactions in the db

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed with @ulisesmac - will create an issue for this feature and mention this needs to be reworked. 👍

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 70 to 72
:values {:ethereum amount
:optimism 0
:arbitrum 0}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we setting the remaining networks as zero because we are not supporting them rn?
If so, maybe we can remove them or add a comment specifying this is temporal.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to remove this and this should be pulled from data 👍

transaction-detes {:status :pending
:id (:id transaction)
:chain-id chain-id}]
{:db (assoc-in db [:wallet :transactions tx-id] transaction-detes)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a question here,

Are transactions associated to an account?
If so, please consider adding these transactions inside the respective account

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's discuss this today!

(keyword? token) name
:always (comp string/lower-case str))]
(get tokens token-symbol)))
(when token
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ulisesmac and I revisted this as we realised it was breaking the token component 👍

[rn/view
{:style (token-style {:justify-content :center
{:style (token-style (merge {:justify-content :center
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ulisesmac & I found a bug where empty tokens didn't sit right, this fix that 👍

(fn [{:keys [db]} [tab]]
{:db (assoc-in db [:wallet :ui :send :select-address-tab] tab)}))
(fn [{:keys [db]} [tab]]

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will delete empty line 👍

(assoc-in [:wallet :ui :send :loading-suggested-routes?] false))})))
(fn [{:keys [db]} [suggested-routes timestamp]]
(when (= (get-in db [:wallet :ui :send :suggested-routes-call-timestamp]) timestamp)
(let [suggested-routes-data (cske/transform-keys csk/->kebab-case suggested-routes)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lowered routes keys 👍

{:db (assoc-in db [:wallet :transactions tx-id] transaction-detes)
:fx [[:dispatch [:navigate-to :wallet-transaction-progress]]]})))

(defn- transaction-bridge [{:keys [from-address to-address route]}]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

put it in a small helper function 👍

@J-Son89 J-Son89 force-pushed the jc/send-it branch 3 times, most recently from 1062580 to a1cb0a1 Compare January 4, 2024 14:59
@pavloburykh
Copy link
Contributor

pavloburykh commented Jan 4, 2024

@J-Son89 thank you for the PR.

Speaking about happy flow - I was able to send some amount of EHT from Account A to Account B.

Besides there are plenty issues, you have already mentioned some of them. I don't know if it makes sense describe all the issues, as you have pointed out that this flow is still in progress. I will mention some of them below so you can keep an eye on them in the follow up PRs.

ISSUE 1 Not able to confirm sending STT (Status Test Token). Confirm button just does not respond.

telegram-cloud-document-2-5238023543039475337.mp4

ISSUE 2 Unable to return to wallet screen after completing the transaction

On IOS at the end user appears on the empty wallet screen. Need to relogin the app to unblock navigation to other screens.

IOS Video

telegram-cloud-document-2-5238023543039475331.mp4

On Android not able to close Sending screen

Android video:

telegram-cloud-document-2-5238023543039475613.mp4

ISSUE 3 Balance is not updated for token receiver until relogin

ISSUE 4 Balance is rounded to 2 decimals on “Select asset” screen.

photo_2024-01-04 18 14 21
photo_2024-01-04 18 14 24

ISSUE 5 “Doesn't support name” error when selecting ETH token on “Select asset” screen.

photo_2024-01-04 18 26 36

Cannot reproduce constantly. I have faced it only couple of times so far.

Status-debug-logs (93).zip

@pavloburykh
Copy link
Contributor

Design Review:
Quo Component - Tags -> Summary Tag was also revisited as it was missng some designs. It would be good to check this component is looking alright here

@J-Son89 do I understand correctly that this PR needs design review based on this comment?

@J-Son89
Copy link
Contributor Author

J-Son89 commented Jan 4, 2024

@pavloburykh - thanks for all the reviews and mentioning those issues. I will check all these and create the issues as needed!
Yes it would be great if @Francesca-G could take a look at the Summary component - (quo tags/ summary-tag) and do a design review of that. It was missing some variants which I have added here.
However it might be nice to do that and track any issues as a follow up as the component adjustments was beyond the initial intention of this pr. wdyt? 🤔

and also just to note that particular component is not used any where else in the codebase (except for the preview screen)

@pavloburykh
Copy link
Contributor

@J-Son89 thanks! So let's wait for Francesca's review. Meanwhile I have triggered e2e re-run as there were some failures in the previous run (most of them are 100% PR related though). I will provide feedback when the results are ready. Based on the e2e runs queue the results will be ready in couple of hours, so hopefully will be ready to merge the PR tomorrow.

Sorry once again for the delay with testing Jamie.

@J-Son89
Copy link
Contributor Author

J-Son89 commented Jan 4, 2024

Not at all, thanks for the rigorous testing! Really helps put the feature together 🙏

@status-im-auto
Copy link
Member

56% of end-end tests have passed

Total executed tests: 48
Failed tests: 19
Expected to fail tests: 2
Passed tests: 27
IDs of failed tests: 702845,702840,702894,703086,702958,702786,702745,702844,702841,702839,702809,702838,704615,702948,702859,703629,702957,702843,703194 
IDs of expected to fail tests: 702808,703503 

Failed tests (19)

Click to expand
  • Rerun failed tests

  • Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745

    Device 1: Tap on found: Button
    Device 1: Find `ProfilePictureElement` by `accessibility id`: `chat-icon`

    critical/chats/test_1_1_public_chats.py:270: in test_1_1_chat_non_latin_messages_stack_update_profile_photo
        self.profile_1.edit_profile_picture(image_index=2)
    ../views/profile_view.py:443: in edit_profile_picture
        self.profile_picture.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: ProfilePictureElement by accessibility id: `chat-icon` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958

    Test setup failed: activity_center/test_activity_center.py:409: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    2. test_activity_center_mentions, id: 702957

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]
    Device 2: Wait for element Button for max 120s and click when it is available

    Test setup failed: activity_center/test_activity_center.py:409: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    2. test_community_contact_block_unblock_offline, id: 702894

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element 
    

    [[Message can be missed after unblock: https://github.com//issues/16873]]

    3. test_community_mark_all_messages_as_read, id: 703086

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    4. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    5. test_community_unread_messages_badge, id: 702841

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    6. test_community_message_delete, id: 702839

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    7. test_community_message_send_check_timestamps_sender_username, id: 702838

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]
    Device 2: Wait for element Button for max 120s and click when it is available

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    8. test_community_edit_delete_message_when_offline, id: 704615

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    9. test_community_one_image_send_reply, id: 702859

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    10. test_community_message_edit, id: 702843

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    11. test_community_several_images_send_reply, id: 703194

    Test setup failed: critical/chats/test_public_chat_browsing.py:319: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    2. test_community_mentions_push_notification, id: 702786

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]
    Device 2: Wait for element Button for max 120s and click when it is available

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    3. test_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    4. test_community_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element 
    

    [[Can't navigate to a channel by hashtag link, https://github.com//issues/18095]]

    5. test_community_join_when_node_owner_offline, id: 703629

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:428: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element 
    

    [[Can't join a community if admin goes offline, https://github.com//issues/17678]]

    Expected to fail tests (2)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_offline_pn, id: 702808

    Device 3: Looking for a message by text: message from old member
    Device 3: Looking for a message by text: message from new member

    critical/chats/test_group_chat.py:324: in test_group_chat_offline_pn
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Messages PN was not fetched from offline 
    

    [[Data delivery issue]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Passed tests (27)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_pin_messages, id: 702732
    Device sessions

    4. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    5. test_group_chat_mute_chat, id: 703495
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    4. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    5. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    6. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    7. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    3. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    3. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    2. test_navigation_jump_to, id: 702936
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_deep_links, id: 702775
    Device sessions

    2. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    @status-im-auto
    Copy link
    Member

    79% of end-end tests have passed

    Total executed tests: 48
    Failed tests: 8
    Expected to fail tests: 2
    Passed tests: 38
    
    IDs of failed tests: 702845,702786,702851,702809,702948,703629,702843,702782 
    
    IDs of expected to fail tests: 702808,703503 
    

    Failed tests (8)

    Click to expand
  • Rerun failed tests

  • Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851

    Device 1: Tap on found: Button
    # STEP: Device1 check that contact appeared in contact list mutually

    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
    E   http.client.RemoteDisconnected: Remote end closed connection without response
    
    During handling of the above exception, another exception occurred:
    activity_center/test_activity_center.py:133: in test_activity_center_contact_request_accept_swipe_mark_all_as_read
        self.device_2.just_fyi('Device1 check that contact appeared in contact list mutually')
    ../views/base_view.py:394: in just_fyi
        self.driver.execute_script("sauce:context=STEP: %s" % some_str)
    /home/jenkins/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:405: in execute_script
        return self.execute(command, {"script": script, "args": converted_args})["value"]
    /home/jenkins/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:343: in execute
        response = self.command_executor.execute(driver_command, params)
    /home/jenkins/.local/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:291: in execute
        return self._request(command_info[0], url, body=data)
    /home/jenkins/.local/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:312: in _request
        response = self._conn.request(method, url, body=body, headers=headers)
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/request.py:78: in request
        return self.request_encode_body(
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/request.py:170: in request_encode_body
        return self.urlopen(method, url, **extra_kw)
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/poolmanager.py:376: in urlopen
        response = conn.urlopen(method, u.request_uri, **kw)
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:787: in urlopen
        retries = retries.increment(
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/util/retry.py:550: in increment
        raise six.reraise(type(error), error, _stacktrace)
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/packages/six.py:769: in reraise
        raise value.with_traceback(tb)
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    /home/jenkins/.local/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
     ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843

    Device 2: Looking for a message by text: Message AFTER edit 2 (Edited)
    Device 2: Find ChatElementByText by xpath: //*[starts-with(@text,'Message AFTER edit 2 (Edited)')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']

    critical/chats/test_public_chat_browsing.py:350: in test_community_message_edit
        self.channel_2.set_reaction(message_text_after_edit)
    ../views/chat_view.py:1074: in set_reaction
        self.chat_element_by_text(message).long_press_until_element_is_shown(element)
    ../views/base_element.py:318: in long_press_until_element_is_shown
        element = self.find_element()
    ../views/chat_view.py:134: in find_element
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: ChatElementByText by xpath:`//*[starts-with(@text,'Message AFTER edit 2 (Edited)')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:434: in join_community
        self.community_status_joined.wait_for_visibility_of_element(60)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Text by accessibility id:`status-tag-positive` is not found on the screen after wait_for_visibility_of_element
    



    2. test_community_mentions_push_notification, id: 702786

    Device 2: Find Button by xpath: //*[@content-desc='password-input']/../following-sibling::*//*[@text='Join Community']
    Device 2: Tap on found: Button

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:434: in join_community
        self.community_status_joined.wait_for_visibility_of_element(60)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Text by accessibility id:`status-tag-positive` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    3. test_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:434: in join_community
        self.community_status_joined.wait_for_visibility_of_element(60)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Text by accessibility id:`status-tag-positive` is not found on the screen after wait_for_visibility_of_element
    



    4. test_community_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:434: in join_community
        self.community_status_joined.wait_for_visibility_of_element(60)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Text by accessibility id:`status-tag-positive` is not found on the screen after wait_for_visibility_of_element
    



    5. test_community_join_when_node_owner_offline, id: 703629

    Test setup failed: critical/chats/test_public_chat_browsing.py:835: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:434: in join_community
        self.community_status_joined.wait_for_visibility_of_element(60)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Text by accessibility id:`status-tag-positive` is not found on the screen after wait_for_visibility_of_element 
    

    [[Can't join a community if admin goes offline, https://github.com//issues/17678]]

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782

    Device 2: Find OpenInStatusButton by xpath: //*[@text="Open in Status"]
    Device 2: Tap on found: OpenInStatusButton

    critical/chats/test_1_1_public_chats.py:175: in test_1_1_chat_emoji_send_reply_and_open_link
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     URL was not opened from 1-1 chat
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_offline_pn, id: 702808

    Device 3: Looking for a message by text: message from old member
    Device 3: Looking for a message by text: message from new member

    critical/chats/test_group_chat.py:324: in test_group_chat_offline_pn
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Messages PN was not fetched from offline 
    

    [[Data delivery issue]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Passed tests (38)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    2. test_navigation_jump_to, id: 702936
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    2. test_activity_center_mentions, id: 702957
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_pin_messages, id: 702732
    Device sessions

    4. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    5. test_group_chat_mute_chat, id: 703495
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_deep_links, id: 702775
    Device sessions

    2. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    2. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    2. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    3. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    4. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    5. test_community_unread_messages_badge, id: 702841
    Device sessions

    6. test_community_message_delete, id: 702839
    Device sessions

    7. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    8. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    9. test_community_one_image_send_reply, id: 702859
    Device sessions

    10. test_community_several_images_send_reply, id: 703194
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    3. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    @J-Son89 failed e2e are not PR related. So we are ready to merge after design review.

    Copy link

    @Francesca-G Francesca-G left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Design Review:
    Quo Component - Tags -> Summary Tag was also revisited as it was missng some designs. It would be good to check this component is looking alright here 👍

    Here's the design review for the Summary Tag component :)
    https://www.figma.com/file/Tf5nfkYvpbnNCo4rKLK7lS/Feedback-for-Mobile?type=design&node-id=3415%3A214763&mode=design&t=ANYgMF9xQ4Gp2lOW-1

    @J-Son89
    Copy link
    Contributor Author

    J-Son89 commented Jan 5, 2024

    Thanks for the review @Francesca-G - I will create a separate issue to make those adjustments. 🙏

    @J-Son89 J-Son89 merged commit 947a1ef into develop Jan 5, 2024
    6 checks passed
    @J-Son89 J-Son89 deleted the jc/send-it branch January 5, 2024 15:04
    @J-Son89
    Copy link
    Contributor Author

    J-Son89 commented Jan 5, 2024

    @pavloburykh - I tracked these issues:
    Issue 1: #18413

    Issue 2 - will be done as part of
    #18307

    Issue 3: #18412

    Issue 4: #18414

    Issue 5-
    #18411

    @Francesca-G - design review updates tracked here:
    #18410

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    Integrate endpoints to send transaction
    9 participants